package com.hbzjt2012.base;

public class Demo01 {
    public static void main(String[] args) {
        String AHello = "test";
        String hello = "test";
        String _hello = "test";
        String $hello = "test";

        //变量名大小写敏感
        String 王者荣耀 = "百星王者";
        System.out.println(王者荣耀);

        //强类型语言：要求变量的使用要严格符合规定，所有变量都必须先定义后才能使用
        //弱类型语言：JS 12+'3'= 123 '123'

        //第一部分
        //八大数据类型
        //整数
        int num1 = 20;  //最常用
        byte num2 = 127;
        short num3 = 30;
        long num4 = 49L;    //Long类型要在数字后面加L

        //小数：浮点数
        float num5 = 45.2f;     //float类型要在数字后面加f
        double num6 = 4.322;

        //字符类型
        char name = 'A';
        //字符串, String不是关键字，是类
        //String name_d = "中国";

        //布尔值：true or false
        boolean flag = true;

        //第二部分：
        //======================================================
        //整数拓展
        //======================================================
        //进制  二进制0b    十进制  八进制0     十六进制0x
        int i = 10;
        int i2 = 010;   //八进制0
        int i3 = 0x10;  //十六进制0x    0~9 A~F

        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("=============================");

        //======================================================
        //浮点数拓展
        //======================================================
        //银行业务怎么表示？钱
        //BigDecimal 数学工具类
        //float: 有限 离散  舍入误差    大约  接近但不等于
        //double
        //最好不要使用浮点数进行比较

        float f = 0.1f; //0.1
        double d = 1.0/10;  //0.1

        System.out.println(f == d);     //false
        System.out.println(f);
        System.out.println(d);

        float d1 = 23232232323233f;
        float d2 = 232322f;
        float d3 = d1 + 1;
        float d4 = d2 + 1;

        System.out.println(d1 == d3);   //true
        System.out.println(d2 == d4);   //false
        System.out.println("=============================");

        //======================================================
        //字符拓展
        //======================================================
        char c1 = 'a';
        char c2 = '中';

        System.out.println(c1);
        System.out.println((int)c1);    //强制转换
        System.out.println(c2);
        System.out.println((int)c2);    //强制转换
        //所有的字符本质还是数字
        //编码 Unicode 表：(97 = a 65 = A)  2字节  0 - 65536
        //U0000 - UFFFF

        char c3 = '\u0061';
        System.out.println(c3); //a

        //转义字符
        // \t: 制表符   \n: 换行
        System.out.println("Hello\tWorld!");
        System.out.println("=============================");

        String sa = new String("hello world");
        String sb = new String("hello world");
        System.out.println(sa == sb);   //false

        String sc = "hello world";
        String sd = "hello world";
        System.out.println(sc == sd);   //true

        System.out.println(sa == sc);   //false
        //对象    从内存分析
        System.out.println("=============================");

        //======================================================
        //布尔值拓展
        //======================================================
        boolean flag1 = true;
        if(flag1){ }    //老手
        if(flag1 == true){ }    //新手
        // Less is More!    代码要精简易读
    }
}
